#ifndef __CONV2D__H__
#define __CONV2D__H__

#include "dtype.h"

extern volatile int relu_on;

#define RELU_ON {relu_on=1;}
#define RELU_OFF {relu_on=0;}

// 卷积 bias=Flase
void conv2d_s1p1k3(featureMap *img_in, kernel *ker, featureMap *img_out);
void conv2d_pw(featureMap *img_in, kernel *ker, featureMap *img_out);
void conv2d_s1p1k3_dw(featureMap *img_in, kernel *ker, featureMap *img_out);
void conv2d_s2p1k3_dw(featureMap *img_in, kernel *ker, featureMap *img_out);

// 卷积 bias=True
void conv2d_s1p1k3_b(featureMap *img_in, kernel *ker, bias *b, featureMap *img_out);
void conv2d_pw_b(featureMap *img_in, kernel *ker, bias *b, featureMap *img_out);
void conv2d_s1p1k3_dw_b(featureMap *img_in, kernel *ker, bias *b, featureMap *img_out);
void conv2d_s2p1k3_dw_b(featureMap *img_in, kernel *ker, bias *b, featureMap *img_out);

#endif
